package com.battle.pojo.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import com.battle.pojo.converter.StringListConverter;
import com.battle.pojo.enums.ArchitecturalStructureTypeEnum;
import com.battle.pojo.enums.FrameNatureTypeEnum;
import jakarta.persistence.Column;
import jakarta.persistence.Convert;
import jakarta.persistence.Entity;
import lombok.Data;
import nirvana.core.domains.ann.AccEntity;
import nirvana.core.domains.entity.DomainBaseEntity;
import nirvana.core.domains.enums.EntityType;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * @author anni.zhu
 * @author anni.zhu@king-v.com
 * Created in 2024/8/22 14:33
 */
@Data
@TableName(value = "CASE_PATROL_STATION",autoResultMap = true)
@Entity(name = "CASE_PATROL_STATION")
@AccEntity(value = "站巡处-战例详情", type = EntityType.SERVICE_ENTITY)
public class CasePatrolStation extends DomainBaseEntity<CasePatrolStation> {
    /**
     * 警情id
     */
    @Column()
    private Long sirensId;
    /**
     * 标题
     */
    @Column(length = 255)
    private String name;

    /**
     * 报警日期
     */
    @Column()
    private LocalDateTime alarmDate;

    /**
     * 着火地址
     */
    @Column(length = 255)
    private String ignitionSite;

    /**
     * 着火地址经度
     */
    @Column(length = 255)
    private String longitudeIgnition;

    /**
     * 着火地址纬度
     */
    @Column(length = 255)
    private  String latitudeIgnition;

    /**
     * 着火单位
     */
    @Column(length = 255)
    private String ignitionUnit;

    /**
     * 燃烧物质
     */
    @Column(columnDefinition="varchar(500)")
    private String burnings;

    /**
     * 燃烧物质照片
     */

    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "burnings_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> burningsPicture;

    /**
     * 天气
     */
    @Column(length = 255)
    private String weather;

    /**
     * 最低温度
     */
    @Column()
    private BigDecimal minTemperature;

    /**
     * 最高温度
     */
    @Column()
    private BigDecimal maxTemperature;

    /**
     * 风力
     */
    @Column()
    private String windPower;

    /**
     * 出动情况-站
     */
    @Column()
    private Integer stand;

    /**
     * 出动情况-车
     */
    @Column()
    private Integer car;

    /**
     * 出动情况-人
     */
    @Column()
    private Integer person;

    /**
     * 损失情况
     */
    @Column(columnDefinition="varchar(500)")
    private String loss;

    /**
     * 损失情况照片
     */

    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "loss_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> lossPicture;

    /**
     * 单位基本情况
     */
    @Column(columnDefinition="varchar(500)")
    private String uniInformation;

    /**
     * 单位基本情况照片
     */

    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "uni_information_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> uniInformationPicture;

    /**
     * 建筑结构
     */
    @Column()
    private String architecturalStructure;

    /**
     * 框架性质
     */
    @Column()
    private String frameNature;


    /**
     * 起火情况
     */
    @Column(columnDefinition="varchar(500)")
    private String fireCondition;

    /**
     * 起火情况照片
     */

    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "fire_condition_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> fireConditionPicture;

    /**
     * 其他信息
     */
    @Column(columnDefinition="varchar(500)")
    private String otherInformation;

    /**
     * 现场音频
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "live_audio",typeHandler = JacksonTypeHandler.class)
    private List<String> liveAudio;

    /**
     * 消火栓经度
     */
    @Column(length = 255)
    private String longitudeFireCock;

    /**
     * 消火栓纬度
     */
    @Column(length = 255)
    private  String latitudeFireCock;

    /**
     * 消火栓情况
     */
    @Column(length = 255)
    private String fireCock;

    /**
     * 消火栓情况照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "fire_cock_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> fireCockPicture;

    /**
     * 天然水源经度
     */
    @Column(length = 255)
    private String longitudeHeadwaters;

    /**
     * 天然水源纬度
     */
    @Column(length = 255)
    private  String latitudeHeadwaters;

    /**
     * 天然水源情况
     */
    @Column(length = 255)
    private String headwaters;

    /**
     * 天然水源情况照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "headwaters_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> headwatersPicture;

    /**
     * 固定消防设施情况
     */
    @Column(length = 255)
    private String fixedFireService;

    /**
     * 固定消防设施情况照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "fixed_fire_service_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> fixedFireServicePicture;

    /**
     * 火灾特点
     */
    @Column(length = 255)
    private String fireCharacteristics;

    /**
     * 火灾特点照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "fire_characteristics_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> fireCharacteristicsPicture;

    /**
     * 接警立案时间
     */
    @Column()
    private LocalDateTime filingTime;

    /**
     * 接警员id
     */
    @Column()
    private String  filingUserId;

    /**
     * 接警员名称
     */
    @Column(length = 50)
    private String  filingUserName;

    /**
     * 初战阶段
     */
    @Column(length = 255)
    private String initialBattle;

    /**
     * 初战阶段照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "initial_battle_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> initialBattlePicture;

    /**
     * 发展阶段
     */
    @Column(length = 255)
    private String develop;

    /**
     * 发展阶段照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "develop_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> developPicture;

    /**
     * 控制阶段
     */
    @Column(length = 255)
    private String control;

    /**
     * 控制阶段照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "control_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> controlPicture;

    /**
     * 熄灭阶段
     */
    @Column(length = 255)
    private String extinguish;

    /**
     * 熄灭阶段照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "extinguish_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> extinguishPicture;

    /**
     * 经验教训
     */
    @Column(length = 255)
    private String experience;

    /**
     * 经验教训照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "experience_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> experiencePicture;

    /**
     * 改进措施
     */
    @Column(length = 255)
    private String improvement;

    /**
     * 改进措施照片
     */
    @Column(columnDefinition="varchar(500)")
    @Convert(converter = StringListConverter.class)
    @TableField(value = "improvement_picture",typeHandler = JacksonTypeHandler.class)
    private List<String> improvementPicture;
}
